]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
overviewControls: Split FaderControl from SlidingControl
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>
Fri, 11 Dec 2020 12:44:53 +0000 (09:44 -0300)
committerMarge Bot <marge-bot@gnome.org>
Tue, 19 Jan 2021 13:47:06 +0000 (13:47 +0000)
The Dash will need only the fading aspect of SlidingControl in the
next commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1559>

js/ui/overviewControls.js

index af0263f14b3f376f7631fb8d65d9ec3a93d77e27..05a177df0e0c47e95fe6dcb2e9b5a65fdc3f8fb6 100644 (file)
@@ -100,8 +100,57 @@ var SlideLayout = GObject.registerClass({
     }
 });
 
+var FaderControl = GObject.registerClass(
+class FaderControl extends St.Widget {
+    _init(params) {
+        super._init(params);
+
+        this._inDrag = false;
+
+        Main.overview.connect('item-drag-begin', this._onDragBegin.bind(this));
+        Main.overview.connect('item-drag-end', this._onDragEnd.bind(this));
+        Main.overview.connect('item-drag-cancelled', this._onDragEnd.bind(this));
+
+        Main.overview.connect('window-drag-begin', this._onWindowDragBegin.bind(this));
+        Main.overview.connect('window-drag-cancelled', this._onWindowDragEnd.bind(this));
+        Main.overview.connect('window-drag-end', this._onWindowDragEnd.bind(this));
+    }
+
+    _onWindowDragBegin() {
+        this._onDragBegin();
+    }
+
+    _onWindowDragEnd() {
+        this._onDragEnd();
+    }
+
+    _onDragBegin() {
+        this._inDrag = true;
+    }
+
+    _onDragEnd() {
+        this._inDrag = false;
+    }
+
+    fadeIn() {
+        this.ease({
+            opacity: 255,
+            duration: SIDE_CONTROLS_ANIMATION_TIME / 2,
+            mode: Clutter.AnimationMode.EASE_IN_QUAD,
+        });
+    }
+
+    fadeHalf() {
+        this.ease({
+            opacity: 128,
+            duration: SIDE_CONTROLS_ANIMATION_TIME / 2,
+            mode: Clutter.AnimationMode.EASE_OUT_QUAD,
+        });
+    }
+});
+
 var SlidingControl = GObject.registerClass(
-class SlidingControl extends St.Widget {
+class SlidingControl extends FaderControl {
     _init(params) {
         params = Params.parse(params, { slideDirection: SlideDirection.LEFT });
 
@@ -114,17 +163,8 @@ class SlidingControl extends St.Widget {
         });
 
         this._visible = true;
-        this._inDrag = false;
 
         Main.overview.connect('hiding', this._onOverviewHiding.bind(this));
-
-        Main.overview.connect('item-drag-begin', this._onDragBegin.bind(this));
-        Main.overview.connect('item-drag-end', this._onDragEnd.bind(this));
-        Main.overview.connect('item-drag-cancelled', this._onDragEnd.bind(this));
-
-        Main.overview.connect('window-drag-begin', this._onWindowDragBegin.bind(this));
-        Main.overview.connect('window-drag-cancelled', this._onWindowDragEnd.bind(this));
-        Main.overview.connect('window-drag-end', this._onWindowDragEnd.bind(this));
     }
 
     _getSlide() {
@@ -183,41 +223,17 @@ class SlidingControl extends St.Widget {
         this.slideOut();
     }
 
-    _onWindowDragBegin() {
-        this._onDragBegin();
-    }
-
-    _onWindowDragEnd() {
-        this._onDragEnd();
-    }
-
     _onDragBegin() {
-        this._inDrag = true;
+        super._onDragBegin();
         this._updateTranslation();
         this._updateSlide();
     }
 
     _onDragEnd() {
-        this._inDrag = false;
+        super._onDragEnd();
         this._updateSlide();
     }
 
-    fadeIn() {
-        this.ease({
-            opacity: 255,
-            duration: SIDE_CONTROLS_ANIMATION_TIME / 2,
-            mode: Clutter.AnimationMode.EASE_IN_QUAD,
-        });
-    }
-
-    fadeHalf() {
-        this.ease({
-            opacity: 128,
-            duration: SIDE_CONTROLS_ANIMATION_TIME / 2,
-            mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-        });
-    }
-
     slideIn() {
         this._visible = true;
         // we will update slide_x and the translation from pageEmpty